package ink.ykb.demo.permission.service;

import java.util.List;

import ink.ykb.demo.permission.entity.Rule;

public interface RuleService {

	/**
	 * 添加权限
	 * 
	 * @param rule
	 */
	void add(Rule rule);

	/**
	 * 更新权限
	 * 
	 * @param rule
	 */
	void update(Rule rule);

	/**
	 * 删除权限
	 * 
	 * @param ruleId
	 */
	void delete(Long ruleId);

	/**
	 * 根据类型查询权限列表
	 * 
	 * @param type
	 * @return
	 */
	List<Rule> getRuleList(Integer type);

	/**
	 * 查询权限列表
	 * 
	 * @param type
	 * @return
	 */
	List<Rule> getRuleList();

	/**
	 * 获取权限信息
	 * 
	 * @param ruleId
	 * @return
	 */
	Rule getRule(Long ruleId);

	/**
	 * 根据父ID查询权限信息
	 * 
	 * @param parentId
	 * @return
	 */
	List<Rule> getRuleListByParentId(Long parentId);

	/**
	 * 根据父级菜单递归查找子级菜案
	 * 
	 * @param parentId
	 * @return
	 */
	List<Rule> getRuleTree(Long parentId);
}
